package office.poi.excel.annotation;

import java.lang.annotation.Retention;
import java.lang.annotation.Target;
import java.lang.annotation.ElementType; 
import java.lang.annotation.RetentionPolicy; 

import office.poi.excel.enums.PropertyType;

/**
 * 注解
 * @author zhdy
 * date 2013-1-5
 * @Retention用来声明注解的保留策略，有CLASS、RUNTIME和SOURCE这三种，分别表示注解保存在类文件、JVM运行时刻和源代码中。 
 * 只有当声明为RUNTIME的时候，才能够在运行时刻通过反射API来获取到注解的信息。 
 *  
 * @Target用来声明注解可以被添加在哪些类型的元素上，如类型、方法和域等 
 */  
@Retention(RetentionPolicy.RUNTIME)  
@Target({ElementType.FIELD}) 
public @interface ExcelColumn {
	//指定Excel列标题
	public String columnName();
	//指定该列是否必填
	public boolean required() default false;
	/**
	 * 指定该列认证类型
	 * PropertyType.NO 不认证
	 * PropertyType 枚举类
	 * 是	NO(),String(),Long(),Integer(),Double(),Float(),Date(),Boolean(),Character();
	 * @return
	 */
	public PropertyType propertyType() default PropertyType.NULL;
	/**
	 * 字符串长度
	 * @return
	 */
	public int length() default 0;
	/**
	 * 小数点前位数
	 * @return
	 */
	public int precision() default 0;
	/**
	 * 小数点后位数
	 * @return
	 */
	public int scale() default 0;
}
